
using System;

namespace LastFMGenNHibernate.EN.LastFM
{
        public class AlbumEN
        {
        /**
         *
         */

        private String nombreAlbum;

        /**
         *
         */

        private int id;

        /**
         *
         */

        private System.Collections.Generic.IList<LastFMGenNHibernate.EN.LastFM.CancionEN> cancion;

        /**
         *
         */

        private String etiqueta;

        /**
         *
         */

        private LastFM.GrupoEN grupo;





        public virtual String NombreAlbum { get { return nombreAlbum; } set { nombreAlbum = value;  } }


        public virtual int Id { get { return id; } set { id = value;  } }


        public virtual System.Collections.Generic.IList<LastFMGenNHibernate.EN.LastFM.CancionEN> Cancion { get { return cancion; } set { cancion = value;  } }


        public virtual String Etiqueta { get { return etiqueta; } set { etiqueta = value;  } }


        public virtual LastFM.GrupoEN Grupo { get { return grupo; } set { grupo = value;  } }



        public AlbumEN()
        {
        }



        public AlbumEN(int id, String nombreAlbum, System.Collections.Generic.IList<LastFMGenNHibernate.EN.LastFM.CancionEN> cancion, String etiqueta, LastFM.GrupoEN grupo)
        {
                this.init (id, nombreAlbum, cancion, etiqueta, grupo);
        }


        public AlbumEN(AlbumEN album)
        {
                this.init (album.Id, album.NombreAlbum, album.Cancion, album.Etiqueta, album.Grupo);
        }

        private void init (int id, String nombreAlbum, System.Collections.Generic.IList<LastFMGenNHibernate.EN.LastFM.CancionEN> cancion, String etiqueta, LastFM.GrupoEN grupo)
        {
                this.Id = id;


                this.NombreAlbum = nombreAlbum;

                this.Cancion = cancion;

                this.Etiqueta = etiqueta;

                this.Grupo = grupo;
        }

        public override bool Equals (object obj)
        {
                if (obj == null)
                        return false;
                AlbumEN t = obj as AlbumEN;
                if (t == null)
                        return false;
                if (Id.Equals (t.Id))
                        return true;
                else
                        return false;
        }

        public override int GetHashCode ()
        {
                int hash = 13;

                hash += (null == Id ? 0 : this.Id.GetHashCode ());
                return hash;
        }
        }
}
